home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 21
/
CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso
/
CUCD
/
Programming
/
VisualBuilder
/
source
/
DropObjSubs.c
< prev
next >
Wrap
Text File
|
1997-08-22
|
3KB
|
101 lines
Object *CreateDropObj(int type)
{ switch (type)
{ case MUIC_DropButton: return(DropButtonObject("Button"));
case MUIC_DropText: return(DropTextObject("Text"));
case MUIC_DropListview: return(DropListviewObject);
case MUIC_DropString: return(DropStringObject("String"));
case MUIC_DropCycle: return(DropCycleObject(entries));
case MUIC_DropRadio: return(DropRadioObject(entries));
case MUIC_DropCheckmark: return(DropCheckmarkObject);
case MUIC_DropGroup: return(DropGroupObject("Group"), Child, HSpace(1), End);
case MUIC_DropGauge: return(DropGaugeObject);
case MUIC_DropScale: return(DropScaleObject);
case MUIC_DropBalance: return(DropBalanceObject);
case MUIC_DropImage: return(DropImageObject);
case MUIC_DropSlider: return(DropSliderObject);
case MUIC_DropKnob: return(DropKnobObject);
case MUIC_DropLevelmeter: return(DropLevelmeterObject);
case MUIC_DropNumericbutton: return(DropNumericbuttonObject);
default: return(NULL);
}
}
VOID Group_Append(Object *new, Object *group)
{
if (DoMethod(group,MUIM_Group_InitChange))
{
DoMethod(group,OM_ADDMEMBER,new);
DoMethod(group,MUIM_Group_ExitChange);
}
}
VOID Group_Remove(Object *obj)
{
Object *group;
get(obj,MUIA_Parent,&group);
if (DoMethod(group,MUIM_Group_InitChange))
{
DoMethod(group,OM_REMMEMBER,obj);
DoMethod(group,MUIM_Group_ExitChange);
}
}
VOID Group_Insert(Object *new, Object *obj, Object *group)
{
if (DoMethod(group,MUIM_Group_InitChange))
{
Insert_Member(new,obj,group);
DoMethod(group,MUIM_Group_ExitChange);
}
}
VOID Group_Move(Object *source, Object *dest)
{
Object *oldgroup, *newgroup;
get(source,MUIA_Parent,&oldgroup);
get(dest,MUIA_Parent,&newgroup);
if (DoMethod(oldgroup,MUIM_Group_InitChange))
{
DoMethod(oldgroup,OM_REMMEMBER,source);
DoMethod(oldgroup,MUIM_Group_ExitChange);
}
if (DoMethod(newgroup,MUIM_Group_InitChange))
{
Insert_Member(source,dest,newgroup);
DoMethod(newgroup,MUIM_Group_ExitChange);
}
}
/************************************************************/
/* For now only an objectlist of 100 objects is supported */
/***********************************************************/
VOID Insert_Member(Object *new, Object *obj, Object *group)
{
Object *child, *childlist=NULL, *objlist[100];
int i;
/* Not very elegant, but there really should be a MUIM_Group_Insert */
get(group,MUIA_Group_ChildList,&childlist);
/* Get all objects */
for(i=0;child=NextObject(&childlist);i++)
objlist[i]=child;
objlist[i]=NULL;
/* Skip to the object */
for(i=0;objlist[i]!=obj;i++);
/* Add the new object */
DoMethod(group,OM_ADDMEMBER,new);
/* Remove and then add then remaining objects to the end of the list*/
for(;objlist[i]!=NULL;i++)
{ DoMethod(group,OM_REMMEMBER,objlist[i]);
DoMethod(group,OM_ADDMEMBER,objlist[i]);
}
}